A large number of application platform products are available in the computer industry that are designed to allow other applications software products to actively interoperate or integrate with them. The application platform provides a set of common services that reduce the amount of work associated with developing the applications and also provides a single interface to the user. In addition, an application platform product typically includes some number of base or built in applications that use these common services. Examples of these application platforms include database products, network management products, operating systems, group collaboration tools and system management products. Hewlett-Packard's system administration manager (SAM) is a specific example of such an application platform that provides for a number of common system management services, such as error handling, event logging, user interface control, and task management.
In this type of software product, a need exists for the ability to learn about newly installed application products so that necessary information about the new product is available in the platform for accomplishing planned interoperability or integration. Since this information is needed at runtime, i.e., while the application platform is actually in operation on a computer system, the information must be loaded into the memory of the computer system at runtime. It would be difficult and problematic to try to load this information into memory prior to the invocation of the application platform and to leave it in memory after the application platform has been exited by the user. Thus, the cost of loading this information must be borne at runtime, typically at the start up of the application platform.
The cost of loading this information at runtime can be significant both in the time it takes to load in the information and in the memory space required to hold all the information. Loading the information usually entails opening a number of files on a file system, allocating memory to store their contents, and reading them into that allocated memory.
The information that must be loaded is typically descriptive information about some portion of the operation of the associated application product. In the case of SAM, this descriptive information includes the descriptions of entries in a menu system that allows the user to select the application for execution, the descriptions of some data structures used to share information between applications, and the descriptions of some tasks that the application product can perform as part of managing a portion of a computer system. For purposes of illustrating some of the disadvantages associated with loading such information into memory at runtime, a brief discussion follows regarding the invocation and execution of system management tasks associated with system management applications as a part of SAM.
The aforementioned management tasks come in two types and three implementations. The first type of task, referred to as a query task, contacts the system or utility being managed to retrieve information about the current configuration and state of the system or utility. The second type of task, referred to as an action task, actually makes changes to the configuration or state of the system or utility.
In regard to implementation, these management tasks can be implemented as a set of commands executed by a command interpreter on the computer system, typically written in some interpreted scripting language, such as that of the POSIX shell. They can also be implemented as one or more functions found in a shared library. A third implementation is as a change performed across a number of computer systems simultaneously via some remote communication protocol.
The SAM employs a task manager facility to interpret the management task descriptions and to manage the execution of these management tasks. This task manager is able to perform management tasks implemented in any one of the three forms as a common service for all SAM based system management applications. In operation, the task manager, upon receiving a request to perform a specific management task, retrieves the description for the specified task from memory and then manages the execution of that task. Once the task is completed, the task manager facility processes the results and then performs several housekeeping duties such as logging the completion of the task and processing any error messages. Accordingly, any application product installed on the computer system that is integrated with the SAM can call for the execution of any task that has been registered whether by it or any other application. Thus, all the descriptive information for each management task is loaded into memory during a process called start up registration which occurs at the beginning of each user session. Considering that this entails reading, parsing, and loading into memory up to 900 tasks and 100 data classes at each start up, it can be appreciated that this process is time consuming and utilizes a significant amount of valuable memory. However, in a typical user session, only a few tasks, i.e., 10 or so, are executed. Thus, the system is unjustifiably hindered by the time consuming task of parsing and loading all the task descriptions which are then stored in memory, taking up valuable space.
Therefore, a heretofore unaddressed need exists in the industry for a registration system and method for registering task descriptions in an efficient manner that does not hinder performance, especially with respect to conserving memory and minimizing registration processing time. Moreover, the same statement can be made about other similar application platform products that must be able to load into memory at runtime similar descriptive information.